package com.tbvtc.agriculturalcreditchainserver2025.service;

import com.tbvtc.agriculturalcreditchainserver2025.dto.CropDto;
import com.tbvtc.agriculturalcreditchainserver2025.dto.LandDto;
import com.tbvtc.agriculturalcreditchainserver2025.dto.farmer.LatitudeAndLongDto;
import com.tbvtc.agriculturalcreditchainserver2025.dto.farmer.registerCropDto;
import com.tbvtc.agriculturalcreditchainserver2025.entity.Crop;
import com.tbvtc.agriculturalcreditchainserver2025.pojo.IotInfo;
import com.tbvtc.agriculturalcreditchainserver2025.pojo.landInit;
import com.tbvtc.agriculturalcreditchainserver2025.pojo.updateIotInfo;
import com.tbvtc.agriculturalcreditchainserver2025.vo.farmerVo.FoodMessage;
import com.tbvtc.agriculturalcreditchainserver2025.vo.farmerVo.FoodReportVo;
import org.fisco.bcos.sdk.transaction.model.dto.TransactionResponse;

import java.util.List;
import java.util.Map;

public interface FarmerSerive {
    TransactionResponse registerCrop( registerCropDto registerCropDto) throws Exception;

    TransactionResponse initLand(landInit landInit) throws Exception;

    List getLandInfo(String landName) throws Exception;


    TransactionResponse addIot(IotInfo iotInfo) throws Exception;

    List getIot(String deviceId) throws Exception;

    TransactionResponse updateIot(updateIotInfo updateIotInfo) throws Exception;

    TransactionResponse addReport(CropDto cropDto) throws Exception;

    TransactionResponse markHarvested(String foodName) throws Exception;

    List selectFoodByPhone(String phone);

    List findAllCrop();

    List findAllLand(Integer id);

    landInit getLandInfoById(String id);

    List<FoodReportVo> getReport(String foodName) throws Exception;

    Double discount(Double discount, Double price);

    Crop findFoodById(Integer CropId);

    void markLandUsed(String landId, String isActive);





}
